package aPlusContentV20201101

type e struct {
	Code    string `json:"code"`
	Message string `json:"message"`
	Detail  string `json:"detail,omitempty"`
}
type contentmetadata struct {
	Name          string   `json:"name"`
	MarketplaceId string   `json:"marketplaceId"`
	Status        string   `json:"status"` //"APPROVED", "DRAFT", "REJECTED", "SUBMITTED"
	BadgeSet      []string `json:"badgeSet"`
	UpdateTime    string   `json:"updateTime"`
}
type contentMetadataRecord struct {
	ContentReferenceKey string          `json:"contentReferenceKey"`
	ContentMetadata     contentmetadata `json:"contentMetadata"`
}
type SearchContentDocumentsResponse struct {
	Warnings               []e                     `json:"warnings,omitempty"`
	NextPageToken          string                  `json:"nextPageToken,omitempty"`
	ContentMetadataRecords []contentMetadataRecord `json:"contentMetadataRecords"`
}

type PostContentDocumentResponse struct {
	Warnings            []e    `json:"warnings,omitempty"`
	ContentReferenceKey string `json:"contentReferenceKey"`
}
type integerWithUnits struct {
	Value int    `json:"value"`
	Unit  string `json:"unit"`
}
type imageDimensions struct {
	Width  integerWithUnits `json:"width"`
	Height integerWithUnits `json:"height"`
}
type imageOffsets struct {
	X integerWithUnits `json:"x"`
	Y integerWithUnits `json:"y"`
}
type imageCropSpecification struct {
	Size   imageDimensions `json:"size"`
	Offset imageOffsets    `json:"offset,omitempty"`
}
type imageComponent struct {
	UploadDestinationId    string                 `json:"uploadDestinationId"`
	ImageCropSpecification imageCropSpecification `json:"imageCropSpecification"`
	AltText                string                 `json:"altText"`
}
type standardCompanyLogoModule struct {
	CompanyLogo imageComponent `json:"companyLogo"`
}
type plainTextItem struct {
	Position string `json:"position"`
	Value    string `json:"value"`
}
type standardComparisonProductBlock struct {
	Position  int             `json:"position"`
	Image     imageComponent  `json:"image,omitempty"`
	Title     string          `json:"title,omitempty"`
	Asin      string          `json:"asin,omitempty"`
	Highlight bool            `json:"highlight,omitempty"`
	Metrics   []plainTextItem `json:"metrics,omitempty"`
}
type standardComparisonTableModule struct {
	ProductColumns  []standardComparisonProductBlock `json:"productColumns,omitempty"`
	MetricRowLabels []plainTextItem                  `json:"metricRowLabels,omitempty"`
}
type docorator struct {
	Type   string `json:"type,omitempty"`
	Offset int    `json:"offset,omitempty"`
	Length int    `json:"length,omitempty"`
	Depth  int    `json:"depth,omitempty"`
}
type textComponent struct {
	Value        string    `json:"value"`
	DecoratorSet docorator `json:"decoratorSet,omitempty"`
}
type paragraphComponent struct {
	TextList []textComponent `json:"textList"`
}
type standardImageTextBlock struct {
	Image    imageComponent     `json:"image,omitempty"`
	Headline textComponent      `json:"headline,omitempty"`
	Body     paragraphComponent `json:"body,omitempty"`
}
type standardFourImageTextModule struct {
	Headline textComponent          `json:"headline,omitempty"`
	Block1   standardImageTextBlock `json:"block1,omitempty"`
	Block2   standardImageTextBlock `json:"block2,omitempty"`
	Block3   standardImageTextBlock `json:"block3,omitempty"`
	Block4   standardImageTextBlock `json:"block4,omitempty"`
}
type standardFourImageTextQuadrantModule struct {
	Block1 standardImageTextBlock `json:"block1"`
	Block2 standardImageTextBlock `json:"block2"`
	Block3 standardImageTextBlock `json:"block3"`
	Block4 standardImageTextBlock `json:"block4"`
}
type standardHeaderImageTextModule struct {
	Headline textComponent          `json:"headline,omitempty"`
	Block    standardImageTextBlock `json:"block,omitempty"`
}
type standardTextBlock struct {
	Headline textComponent      `json:"headline,omitempty"`
	Body     paragraphComponent `json:"body,omitempty"`
}
type textItem struct {
	Position int           `json:"position"`
	Text     textComponent `json:"text"`
}
type standardTextListBlock struct {
	TextList []textItem `json:"textList"`
}
type standardImageSidebarModule struct {
	Headline              textComponent          `json:"headline,omitempty"`
	ImageCaptionBlock     standardImageTextBlock `json:"imageCaptionBlock,omitempty"`
	DescriptionBlock      standardTextBlock      `json:"descriptionBlock,omitempty"`
	DescriptionListBlock  standardTextListBlock  `json:"descriptionListBlock,omitempty"`
	SidebarImageTextBlock standardImageTextBlock `json:"sidebarImageTextBlock,omitempty"`
	SidebarListBlock      standardTextListBlock  `json:"sidebarListBlock,omitempty"`
}
type standardImageTextOverlayModule struct {
	OverlayColorType string                 `json:"overlayColorType"`
	Block            standardImageTextBlock `json:"block,omitempty"`
}
type standardImageTextCaptionBlock struct {
	Block   standardImageTextBlock `json:"block,omitempty"`
	Caption textComponent          `json:"caption,omitempty"`
}
type standardMultipleImageTextModule struct {
	Blocks []standardImageTextCaptionBlock `json:"blocks,omitempty"`
}
type standardProductDescriptionModule struct {
	Body paragraphComponent `json:"body"`
}
type standardHeaderTextListBlock struct {
	Headline textComponent         `json:"headline,omitempty"`
	Block    standardTextListBlock `json:"block,omitempty"`
}
type standardSingleImageHighlightsModule struct {
	Image             imageComponent              `json:"image,omitempty"`
	Headline          textComponent               `json:"headline,omitempty"`
	TextBlock1        standardTextBlock           `json:"textBlock1,omitempty"`
	TextBlock2        standardTextBlock           `json:"textBlock2,omitempty"`
	TextBlock3        standardTextBlock           `json:"textBlock3,omitempty"`
	BulletedListBlock standardHeaderTextListBlock `json:"bulletedListBlock,omitempty"`
}
type standardSingleImageSpecsDetailModule struct {
	Headline               textComponent               `json:"headline,omitempty"`
	Image                  imageComponent              `json:"image,omitempty"`
	DescriptionBlock       textComponent               `json:"descriptionBlock,omitempty"`
	DescriptionBlock1      standardTextBlock           `json:"descriptionBlock1,omitempty"`
	DescriptionBlock2      standardTextBlock           `json:"descriptionBlock2,omitempty"`
	SpecificationHeadline  textComponent               `json:"specificationHeadline,omitempty"`
	SpecificationListBlock standardHeaderTextListBlock `json:"specificationListBlock,omitempty"`
	SpecificationTextBlock standardTextBlock           `json:"specificationTextBlock,omitempty"`
}
type standardSingleSideImageModule struct {
	ImagePositionType string                 `json:"imagePositionType"`
	Block             standardImageTextBlock `json:"block,omitempty"`
}
type standardTextPairBlock struct {
	Label       textComponent `json:"label,omitempty"`
	Description textComponent `json:"description,omitempty"`
}
type standardTechSpecsModule struct {
	Headline          textComponent           `json:"headline,omitempty"`
	SpecificationList []standardTextPairBlock `json:"specificationList"`
	TableCount        int                     `json:"tableCount,omitempty"`
}
type standardTextModule struct {
	Headline textComponent      `json:"headline,omitempty"`
	Body     paragraphComponent `json:"body"`
}
type standardThreeImageTextModule struct {
	Headline textComponent          `json:"headline,omitempty"`
	Block1   standardImageTextBlock `json:"block1,omitempty"`
	Block2   standardImageTextBlock `json:"block2,omitempty"`
	Block3   standardImageTextBlock `json:"block3,omitempty"`
}
type contentModule struct {
	ContentModuleType              string                               `json:"contentModuleType"`
	StandardCompanyLogo            standardCompanyLogoModule            `json:"standardCompanyLogo,omitempty"`
	StandardComparisonTable        standardComparisonTableModule        `json:"standardComparisonTable,omitempty"`
	StandardFourImageText          standardFourImageTextModule          `json:"standardFourImageText,omitempty"`
	StandardFourImageTextQuadrant  standardFourImageTextQuadrantModule  `json:"standardFourImageTextQuadrant,omitempty"`
	StandardHeaderImageText        standardHeaderImageTextModule        `json:"standardHeaderImageText,omitempty"`
	StandardImageSidebar           standardImageSidebarModule           `json:"standardImageSidebar,omitempty"`
	StandardImageTextOverlay       standardImageTextOverlayModule       `json:"standardImageTextOverlay,omitempty"`
	StandardMultipleImageText      standardMultipleImageTextModule      `json:"standardMultipleImageText,omitempty"`
	StandardProductDescription     standardProductDescriptionModule     `json:"standardProductDescription,omitempty"`
	StandardSingleImageHighlights  standardSingleImageHighlightsModule  `json:"standardSingleImageHighlights,omitempty"`
	StandardSingleImageSpecsDetail standardSingleImageSpecsDetailModule `json:"standardSingleImageSpecsDetail,omitempty"`
	StandardSingleSideImage        standardSingleSideImageModule        `json:"standardSingleSideImage,omitempty"`
	StandardTechSpecs              standardTechSpecsModule              `json:"standardTechSpecs,omitempty"`
	StandardText                   standardTextModule                   `json:"standardText,omitempty"`
	StandardThreeImageText         standardThreeImageTextModule         `json:"standardThreeImageText,omitempty"`
}
type contentDocument struct {
	Name              string          `json:"name"`
	ContentType       string          `json:"contentType"`
	ContentSubType    string          `json:"contentSubType,omitempty"`
	Locale            string          `json:"locale"`
	ContentModuleList []contentModule `json:"contentModuleList"`
}
type contentRecord struct {
	ContentReferenceKey string          `json:"contentReferenceKey"`
	ContentMetadata     contentmetadata `json:"contentMetadata,omitempty"`
	ContentDocument     contentDocument `json:"contentDocument,omitempty"`
}
type GetContentDocumentResponse struct {
	Warnings      []e           `json:"warnings,omitempty"`
	ContentRecord contentRecord `json:"contentRecord"`
}
type asinMetadata struct {
	Asin                   string `json:"asin"`
	BadgeSet               string `json:"badgeSet,omitempty"`
	Parent                 string `json:"parent,omitempty"`
	Title                  string `json:"title,omitempty"`
	ImageUrl               string `json:"imageUrl,omitempty"`
	ContentReferenceKeySet string `json:"contentReferenceKeySet,omitempty"`
}
type ListContentDocumentAsinRelationsResponse struct {
	Warnings        []e            `json:"warnings,omitempty"`
	NextPageToken   string         `json:"nextPageToken"`
	AsinMetadataSet []asinMetadata `json:"asinMetadataSet"`
}
type PostContentDocumentAsinRelationsResponse struct {
	Warnings []e `json:"warnings,omitempty"`
}
type ValidateContentDocumentAsinRelationsResponse struct {
	Warnings []e `json:"warnings,omitempty"`
	Errors   e   `json:"errors"`
}
type publishRecord struct {
	MarketplaceId       string `json:"marketplaceId"`
	Locale              string `json:"locale"`
	Asin                string `json:"asin"`
	ContentType         string `json:"contentType"`
	ContentSubType      string `json:"contentSubType,omitempty"`
	ContentReferenceKey string `json:"contentReferenceKey"`
}
type SearchContentPublishRecordsResponse struct {
	Warnings          []e             `json:"warnings,omitempty"`
	NextPageToken     string          `json:"nextPageToken,omitempty"`
	PublishRecordList []publishRecord `json:"publishRecordList"`
}
type PostContentDocumentApprovalSubmissionResponse struct {
	Warnings []e `json:"warnings,omitempty"`
}
type PostContentDocumentSuspendSubmissionResponse struct {
	Warnings []e `json:"warnings,omitempty"`
}
